package com.kater.promotion.impl;

import com.kater.fruit.Fruit;
import com.kater.fruit.Strawberry;
import com.kater.promotion.Promotion;

import java.util.Map;

// 草莓打折策略
public class StrawberryDiscount implements Promotion {
    /**
     * 计算水果总价，并应用特定的促销折扣。
     * 对于草莓，应用8折优惠；其他水果则无折扣。
     *
     * @param fruits 水果及其数量的映射表，用于计算总价。
     * @return 总价，已应用折扣。
     */
    @Override
    public double applyPromotion(Map<Fruit, Integer> fruits) {
        double totalPrice = 0; // 初始化总价为0

        // 遍历水果映射表，计算每种水果的总价
        for (Map.Entry<Fruit, Integer> entry : fruits.entrySet()) {
            // 判断当前水果是否为草莓
            if (entry.getKey() instanceof Strawberry) {
                // 如果是草莓，应用8折优惠
                totalPrice += entry.getKey().getPrice() * entry.getValue() * 0.8; // 打8折
            } else {
                // 如果不是草莓，不应用优惠
                totalPrice += entry.getKey().getPrice() * entry.getValue();
            }
        }
        return totalPrice; // 返回计算后的总价
    }

}

